原文发布于 2015-07-10 我的Lofter:http://kimleo.lofter.com/post/46977_791b281
好像*aaS已经成了一个热门的模式了。早些年的SaaS,以及后来云计算概念普及后的PaaS和IaaS,还有目前来说算是新一点的Parse、LeanCloud这种BaaS(Backend as a Service)。
嗯,以及articles/Language as a Service。
在这众多的aaS之中,对于普通用户来说,受益更多效果最明显的就是SaaS;经过各种软件公司的再创造,办公、协作、社交、学习等各种活动现在都可以轻松的脱离臃肿的客户端,只通过一个浏览器来完成。然而作为开发者,、对后面的几个关注度可能占的比重要更多一些。
PaaS让我们脱离了管理和部署线上运行环境的苦恼,而且高度可伸缩,可以作为SaaS的应用基础。IaaS更是把最基本的运行环境都变成了高度可定制的,按时按量精确付费,节省了大量的采购和管理的费用。
BaaS更是智能的解决了大部分开发者的痛处,把一个应用的基本的后端功能变成组件,随时取用。然后做到真正的把大部分的功能集中到实现业务逻辑上。
但是这样还是没能解决掉一些实质性的问题。
以国内的LeanCloud为例,比如在考虑对象设计的时候,是schemaless的,同时对于对象关系,也设计了一些复杂的模式来控制(比如AVRelation),这样一来,建模和业务逻辑又混杂在一起,或者开发者不得不自己再对其进行管理。另外就是,后端的业务逻辑是通过钩子(hook)来实现的,考虑到优先级、执行和跳转流程等等,又完全是一片混乱。
所以这里就要说一下JSONSpec的另外一个设计了,Workflow。
当然你要说我在抄Windows Workflow Foundation我也不会说些什么的,反正我是不喜欢BPMN那么复杂的设计,转而通过设计一套简单易用的功能。
然而现在正在设计中。
不过我们可以预想一下如果实现了Workflow之后开发流程:
- 设计数据模型(Spec)。
- 设计工作流(Workflow)。
- 设计服务接口(Service)。
这样子“前端”真的只需要考虑呈现逻辑就可以了。
(待续。。。